#什么是列表？
#如何定义？
# 列表的序列特性：切片
# 合并列表  批量改变内容  
#什么是元组？如何定义
# in
#通过列表或者元组给多变量同时赋值

#元组的定义可以不写括号
tup1 = 3,34,5
tup2 = 4,
print(type(tup1))
print(type(tup2))

#通过元组给多变量赋值
age1 ,age2,age3 = tup1
print(age2)

var1 = [ 33, ['我的名字', '黑羽白月'], 'hello world!']
print(var1[2])
print(var1[1][1])
var1[2] = 'oh my god'
var1[1][1] = '百乐童子'

print(var1)

var2 = [ 33, ('我的名字', '黑羽白月'), 'hello world!']
var2[1] = ('我的名字', '百乐童子')
print(var2)


#是ok  因为是重新赋值了
def func(arg):
    arg = 'hello'

var = 'ok'
func(var)
print(var)

#是【hello】 ，因为这里是变量所指向的对象本身发生了变化
def func(arg):
    arg[0] = 'hello'

var = ['ok']
func(var)
print(var)

#是【ok】  arg被重新赋值了  但是var没有
def func(arg):
    arg = ['hello']

var = ['ok']
func(var)
print(var)

# 对 错  不对

#额外的练习
def askinfo(name):
    h = input(f'请输入{name}的身高：')
    w = input(f'请输入{name}的体重：')
    return int(h),int(w)

# tup11 = askinfo('学员1')   
# tup12 = askinfo('学员2')   
# tup13 = askinfo('学员3')   

#上面的代码可以直接简化为,这样就可以不用再去处理一遍元组，让代码看起来很多
#  h1,w1 = askinfo('学员1') 

# avgh = (tup11[0]+tup12[0]+tup13[0])/3
# avgw = (tup11[1]+tup12[1]+tup13[1])/3

# print(f'平均身高是{avgh}')
# print(f'平均体重是{avgw}')


list111 = [1,2,3,4]
print(id(list111))
list123 = list111[2:4]
print(f'list111是{list111}')
print(f'list123是{list123}')
list111[1:3] = [99,99,999]

print(f'list111是{list111}')

